﻿namespace TestTool.Proxies.Onvif
{
    using System;
    using System.CodeDom.Compiler;
    using System.ComponentModel;
    using System.Diagnostics;
    using System.ServiceModel;
    using System.ServiceModel.Channels;

    [GeneratedCode("System.ServiceModel", "3.0.0.0"), DebuggerStepThrough]
    public class SearchPortClient : ClientBase<SearchPort>, SearchPort
    {
        public SearchPortClient()
        {
        }

        public SearchPortClient(string endpointConfigurationName) : base(endpointConfigurationName)
        {
        }

        public SearchPortClient(Binding binding, EndpointAddress remoteAddress) : base(binding, remoteAddress)
        {
        }

        public SearchPortClient(string endpointConfigurationName, EndpointAddress remoteAddress) : base(endpointConfigurationName, remoteAddress)
        {
        }

        public SearchPortClient(string endpointConfigurationName, string remoteAddress) : base(endpointConfigurationName, remoteAddress)
        {
        }

        public System.DateTime EndSearch(string SearchToken)
        {
            return base.Channel.EndSearch(SearchToken);
        }

        public FindEventsResponse FindEvents(TestTool.Proxies.Onvif.FindEvents FindEvents1)
        {
            FindEventsRequest request = new FindEventsRequest {
                FindEvents = FindEvents1
            };
            return ((SearchPort) this).FindEvents(request).FindEventsResponse;
        }

        public FindMetadataResponse FindMetadata(TestTool.Proxies.Onvif.FindMetadata FindMetadata1)
        {
            FindMetadataRequest request = new FindMetadataRequest {
                FindMetadata = FindMetadata1
            };
            return ((SearchPort) this).FindMetadata(request).FindMetadataResponse;
        }

        public FindPTZPositionResponse FindPTZPosition(System.DateTime StartPoint, System.DateTime? EndPoint, SearchScope Scope, PTZPositionFilter SearchFilter, int? MaxMatches, string KeepAliveTime1)
        {
            FindPTZPositionRequest request = new FindPTZPositionRequest {
                FindPTZPosition = new TestTool.Proxies.Onvif.FindPTZPosition()
            };
            request.FindPTZPosition.EndPoint = EndPoint.GetValueOrDefault();
            request.FindPTZPosition.EndPointSpecified = EndPoint.HasValue;
            request.FindPTZPosition.KeepAliveTime = KeepAliveTime1;
            request.FindPTZPosition.MaxMatches = MaxMatches.GetValueOrDefault();
            request.FindPTZPosition.MaxMatchesSpecified = MaxMatches.HasValue;
            request.FindPTZPosition.Scope = Scope;
            request.FindPTZPosition.SearchFilter = SearchFilter;
            request.FindPTZPosition.StartPoint = StartPoint;
            return ((SearchPort) this).FindPTZPosition(request).FindPTZPositionResponse;
        }

        public FindRecordingsResponse FindRecordings(TestTool.Proxies.Onvif.FindRecordings FindRecordings1)
        {
            FindRecordingsRequest request = new FindRecordingsRequest {
                FindRecordings = FindRecordings1
            };
            return ((SearchPort) this).FindRecordings(request).FindRecordingsResponse;
        }

        public GetEventSearchResultsResponse GetEventSearchResults(TestTool.Proxies.Onvif.GetEventSearchResults GetEventSearchResults1)
        {
            GetEventSearchResultsRequest request = new GetEventSearchResultsRequest {
                GetEventSearchResults = GetEventSearchResults1
            };
            return ((SearchPort) this).GetEventSearchResults(request).GetEventSearchResultsResponse;
        }

        public MediaAttributes[] GetMediaAttributes(string[] RecordingTokens, System.DateTime Time)
        {
            GetMediaAttributesRequest request = new GetMediaAttributesRequest {
                RecordingTokens = RecordingTokens,
                Time = Time
            };
            return ((SearchPort) this).GetMediaAttributes(request).MediaAttributes;
        }

        public GetMetadataSearchResultsResponse GetMetadataSearchResults(TestTool.Proxies.Onvif.GetMetadataSearchResults GetMetadataSearchResults1)
        {
            GetMetadataSearchResultsRequest request = new GetMetadataSearchResultsRequest {
                GetMetadataSearchResults = GetMetadataSearchResults1
            };
            return ((SearchPort) this).GetMetadataSearchResults(request).GetMetadataSearchResultsResponse;
        }

        public GetPTZPositionSearchResultsResponse GetPTZPositionSearchResults(string SearchToken, int? MinResults, int? MaxResults, string WaitTime)
        {
            GetPTZPositionSearchResultsRequest request = new GetPTZPositionSearchResultsRequest {
                GetPTZPositionSearchResults = new TestTool.Proxies.Onvif.GetPTZPositionSearchResults()
            };
            request.GetPTZPositionSearchResults.MaxResults = MaxResults.GetValueOrDefault();
            request.GetPTZPositionSearchResults.MaxResultsSpecified = MaxResults.HasValue;
            request.GetPTZPositionSearchResults.MinResults = MinResults.GetValueOrDefault();
            request.GetPTZPositionSearchResults.MinResultsSpecified = MinResults.HasValue;
            request.GetPTZPositionSearchResults.SearchToken = SearchToken;
            request.GetPTZPositionSearchResults.WaitTime = WaitTime;
            return ((SearchPort) this).GetPTZPositionSearchResults(request).GetPTZPositionSearchResultsResponse;
        }

        public RecordingInformation GetRecordingInformation(string RecordingToken)
        {
            return base.Channel.GetRecordingInformation(RecordingToken);
        }

        public GetRecordingSearchResultsResponse GetRecordingSearchResults(TestTool.Proxies.Onvif.GetRecordingSearchResults GetRecordingSearchResults1)
        {
            GetRecordingSearchResultsRequest request = new GetRecordingSearchResultsRequest {
                GetRecordingSearchResults = GetRecordingSearchResults1
            };
            return ((SearchPort) this).GetRecordingSearchResults(request).GetRecordingSearchResultsResponse;
        }

        public RecordingSummary GetRecordingSummary()
        {
            return base.Channel.GetRecordingSummary();
        }

        public SearchState GetSearchState(string SearchToken)
        {
            return base.Channel.GetSearchState(SearchToken);
        }

        public SearchServiceCapabilities GetServiceCapabilities()
        {
            return base.Channel.GetServiceCapabilities();
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        FindEventsResponse1 SearchPort.FindEvents(FindEventsRequest request)
        {
            return base.Channel.FindEvents(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        FindMetadataResponse1 SearchPort.FindMetadata(FindMetadataRequest request)
        {
            return base.Channel.FindMetadata(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        FindPTZPositionResponse1 SearchPort.FindPTZPosition(FindPTZPositionRequest request)
        {
            return base.Channel.FindPTZPosition(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        FindRecordingsResponse1 SearchPort.FindRecordings(FindRecordingsRequest request)
        {
            return base.Channel.FindRecordings(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        GetEventSearchResultsResponse1 SearchPort.GetEventSearchResults(GetEventSearchResultsRequest request)
        {
            return base.Channel.GetEventSearchResults(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        GetMediaAttributesResponse SearchPort.GetMediaAttributes(GetMediaAttributesRequest request)
        {
            return base.Channel.GetMediaAttributes(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        GetMetadataSearchResultsResponse1 SearchPort.GetMetadataSearchResults(GetMetadataSearchResultsRequest request)
        {
            return base.Channel.GetMetadataSearchResults(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        GetPTZPositionSearchResultsResponse1 SearchPort.GetPTZPositionSearchResults(GetPTZPositionSearchResultsRequest request)
        {
            return base.Channel.GetPTZPositionSearchResults(request);
        }

        [EditorBrowsable(EditorBrowsableState.Advanced)]
        GetRecordingSearchResultsResponse1 SearchPort.GetRecordingSearchResults(GetRecordingSearchResultsRequest request)
        {
            return base.Channel.GetRecordingSearchResults(request);
        }
    }
}

